//v.3.6 build 130417

/*
 Copyright DHTMLX LTD. http://www.dhtmlx.com
 To use this component please contact sales@dhtmlx.com to obtain license
 */
function dhtmlXContainer(i) {
    var g = this;
    this.obj = i;
    i = null;
    this.obj._padding = !0;
    this.dhxcont = null;
    this.st = document.createElement("DIV");
    this.st.style.position = "absolute";
    this.st.style.left = "-200px";
    this.st.style.top = "0px";
    this.st.style.width = "100px";
    this.st.style.height = "1px";
    this.st.style.visibility = "hidden";
    this.st.style.overflow = "hidden";
    document.body.insertBefore(this.st, document.body.childNodes[0]);
    this.obj._getSt = function () {
        return g.st
    };
    this.obj.dv = "def";
    this.obj.av = this.obj.dv;
    this.obj.cv = this.obj.av;
    this.obj.vs = {};
    this.obj.vs[this.obj.av] = {};
    this.obj.view = function (b) {
        if (!this.vs[b]) {
            this.vs[b] = {};
            this.vs[b].dhxcont = this.vs[this.dv].dhxcont;
            var a = document.createElement("DIV");
            a.style.position = "relative";
            a.style.left = "0px";
            a.style.width = "200px";
            a.style.height = "200px";
            a.style.overflow = "hidden";
            a.style.visibility = "";
            g.st.appendChild(a);
            this.vs[b].dhxcont.mainCont[b] = a;
            a = null
        }
        this.avt = this.av;
        this.av = b;
        return this
    };
    this.obj.setActive = function () {
        if (this.vs[this.av])this.cv = this.av, this.vs[this.avt].dhxcont ==
        this.vs[this.avt].dhxcont.mainCont[this.avt].parentNode && (g.st.appendChild(this.vs[this.avt].dhxcont.mainCont[this.avt]), this.vs[this.avt].menu && g.st.appendChild(document.getElementById(this.vs[this.avt].menuId)), this.vs[this.avt].toolbar && g.st.appendChild(document.getElementById(this.vs[this.avt].toolbarId)), this.vs[this.avt].sb && g.st.appendChild(document.getElementById(this.vs[this.avt].sbId))), this.vs[this.av].dhxcont != this.vs[this.av].dhxcont.mainCont[this.av].parentNode && (this.vs[this.av].dhxcont.insertBefore(this.vs[this.av].dhxcont.mainCont[this.av],
            this.vs[this.av].dhxcont.childNodes[this.vs[this.av].dhxcont.childNodes.length - 1]), this.vs[this.av].menu && this.vs[this.av].dhxcont.insertBefore(document.getElementById(this.vs[this.av].menuId), this.vs[this.av].dhxcont.childNodes[0]), this.vs[this.av].toolbar && this.vs[this.av].dhxcont.insertBefore(document.getElementById(this.vs[this.av].toolbarId), this.vs[this.av].dhxcont.childNodes[this.vs[this.av].menu ? 1 : 0]), this.vs[this.av].sb && this.vs[this.av].dhxcont.insertBefore(document.getElementById(this.vs[this.av].sbId),
            this.vs[this.av].dhxcont.childNodes[this.vs[this.av].dhxcont.childNodes.length - 1])), this._doOnResize && this._doOnResize(), this._isWindow && this.updateNestedObjects(), this.avt = null
    };
    this.obj._viewRestore = function () {
        var b = this.av;
        if (this.avt)this.av = this.avt, this.avt = null;
        return b
    };
    this.setContent = function (b) {
        this.obj.vs[this.obj.av].dhxcont = b;
        this.obj._init();
        b = null
    };
    this.obj._init = function () {
        this.vs[this.av].dhxcont.innerHTML = "<div ida='dhxMainCont' style='position: relative; left: 0px; top: 0px; overflow: hidden;'></div><div class='dhxcont_content_blocker' style='display: none;'></div>";
        this.vs[this.av].dhxcont.mainCont = {};
        this.vs[this.av].dhxcont.mainCont[this.av] = this.vs[this.av].dhxcont.childNodes[0]
    };
    this.obj._genStr = function (b) {
        for (var a = "", c = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789", d = 0; d < b; d++)a += c.charAt(Math.round(Math.random() * (c.length - 1)));
        return a
    };
    this.obj.setMinContentSize = function (b, a) {
        this.vs[this.av]._minDataSizeW = b;
        this.vs[this.av]._minDataSizeH = a
    };
    this.obj._setPadding = function (b, a) {
        typeof b == "object" ? (this._offsetTop = b[0], this._offsetLeft =
            b[1], this._offsetWidth = b[2], this._offsetHeight = b[3], b = null) : (this._offsetLeft = this._offsetTop = b, this._offsetWidth = -b * 2, this._offsetHeight = -b * 2);
        this.vs[this.av].dhxcont.className = "dhxcont_global_content_area " + (a || "")
    };
    this.obj.moveContentTo = function (b) {
        for (var a in this.vs) {
            b.view(a).setActive();
            var c = null;
            this.vs[a].grid && (c = "grid");
            this.vs[a].tree && (c = "tree");
            this.vs[a].tabbar && (c = "tabbar");
            this.vs[a].folders && (c = "folders");
            this.vs[a].layout && (c = "layout");
            c != null && (b.view(a).attachObject(this.vs[a][c +
            "Id"], !1, !0, !1), b.vs[a][c] = this.vs[a][c], b.vs[a][c + "Id"] = this.vs[a][c + "Id"], b.vs[a][c + "Obj"] = this.vs[a][c + "Obj"], this.vs[a][c] = null, this.vs[a][c + "Id"] = null, this.vs[a][c + "Obj"] = null);
            if (this.vs[a]._frame)b.vs[a]._frame = this.vs[a]._frame, this.vs[a]._frame = null;
            if (this.vs[a].menu != null) {
                if (b.cv == b.av)b.vs[b.av].dhxcont.insertBefore(document.getElementById(this.vs[a].menuId), b.vs[b.av].dhxcont.childNodes[0]); else {
                    var d = b._getSt();
                    d.appendChild(document.getElementById(this.vs[a].menuId));
                    d = null
                }
                b.vs[a].menu =
                    this.vs[a].menu;
                b.vs[a].menuId = this.vs[a].menuId;
                b.vs[a].menuHeight = this.vs[a].menuHeight;
                this.vs[a].menu = null;
                this.vs[a].menuId = null;
                this.vs[a].menuHeight = null;
                this.cv == this.av && this._doOnAttachMenu && this._doOnAttachMenu("unload");
                b.cv == b.av && b._doOnAttachMenu && b._doOnAttachMenu("move")
            }
            if (this.vs[a].toolbar != null)b.cv == b.av ? b.vs[b.av].dhxcont.insertBefore(document.getElementById(this.vs[a].toolbarId), b.vs[b.av].dhxcont.childNodes[b.vs[b.av].menu != null ? 1 : 0]) : (d = b._getSt(), d.appendChild(document.getElementById(this.vs[a].toolbarId)),
                d = null), b.vs[a].toolbar = this.vs[a].toolbar, b.vs[a].toolbarId = this.vs[a].toolbarId, b.vs[a].toolbarHeight = this.vs[a].toolbarHeight, this.vs[a].toolbar = null, this.vs[a].toolbarId = null, this.vs[a].toolbarHeight = null, this.cv == this.av && this._doOnAttachToolbar && this._doOnAttachToolbar("unload"), b.cv == b.av && b._doOnAttachToolbar && b._doOnAttachToolbar("move");
            if (this.vs[a].sb != null) {
                if (b.cv == b.av)b.vs[b.av].dhxcont.insertBefore(document.getElementById(this.vs[a].sbId), b.vs[b.av].dhxcont.childNodes[b.vs[b.av].dhxcont.childNodes.length -
                1]); else return d = b._getSt(), d.appendChild(document.getElementById(this.vs[a].sbId)), d;
                b.vs[a].sb = this.vs[a].sb;
                b.vs[a].sbId = this.vs[a].sbId;
                b.vs[a].sbHeight = this.vs[a].sbHeight;
                this.vs[a].sb = null;
                this.vs[a].sbId = null;
                this.vs[a].sbHeight = null;
                this.cv == this.av && this._doOnAttachStatusBar && this._doOnAttachStatusBar("unload");
                b.cv == b.av && b._doOnAttachStatusBar && b._doOnAttachStatusBar("move")
            }
            for (var e = this.vs[a].dhxcont.mainCont[a], f = b.vs[a].dhxcont.mainCont[a]; e.childNodes.length > 0;)f.appendChild(e.childNodes[0])
        }
        b.view(this.av).setActive();
        b = null
    };
    this.obj.adjustContent = function (b, a, c, d, e) {
        var f = this.vs[this.av].dhxcont, h = f.mainCont[this.av];
        f.style.left = (this._offsetLeft || 0) + "px";
        f.style.top = (this._offsetTop || 0) + a + "px";
        var g = b.clientWidth + (this._offsetWidth || 0);
        if (d !== !0)f.style.width = Math.max(0, g) + "px";
        if (d !== !0 && f.offsetWidth > g)f.style.width = Math.max(0, g * 2 - f.offsetWidth) + "px";
        var k = b.clientHeight + (this._offsetHeight || 0);
        f.style.height = Math.max(0, k - a) + (c != null ? c : 0) + "px";
        if (f.offsetHeight > k - a)f.style.height = Math.max(0, (k - a) * 2 - f.offsetHeight) +
            "px";
        if (e && !isNaN(e))f.style.height = Math.max(0, parseInt(f.style.height) - e) + "px";
        if (this.vs[this.av]._minDataSizeH != null && parseInt(f.style.height) < this.vs[this.av]._minDataSizeH)f.style.height = this.vs[this.av]._minDataSizeH + "px";
        if (this.vs[this.av]._minDataSizeW != null && parseInt(f.style.width) < this.vs[this.av]._minDataSizeW)f.style.width = this.vs[this.av]._minDataSizeW + "px";
        if (d !== !0 && (h.style.width = f.clientWidth + "px", h.offsetWidth > f.clientWidth))h.style.width = Math.max(0, f.clientWidth * 2 - h.offsetWidth) +
            "px";
        var i = this.vs[this.av].menu != null ? !this.vs[this.av].menuHidden ? this.vs[this.av].menuHeight : 0 : 0, j = this.vs[this.av].toolbar != null ? !this.vs[this.av].toolbarHidden ? this.vs[this.av].toolbarHeight : 0 : 0, l = this.vs[this.av].sb != null ? !this.vs[this.av].sbHidden ? this.vs[this.av].sbHeight : 0 : 0;
        h.style.height = f.clientHeight + "px";
        if (h.offsetHeight > f.clientHeight)h.style.height = Math.max(0, f.clientHeight * 2 - h.offsetHeight) + "px";
        h.style.height = Math.max(0, parseInt(h.style.height) - i - j - l) + "px";
        b = f = h = null
    };
    this.obj.coverBlocker =
        function () {
            return this.vs[this.av].dhxcont.childNodes[this.vs[this.av].dhxcont.childNodes.length - 1]
        };
    this.obj.showCoverBlocker = function () {
        var b = this.coverBlocker();
        b.style.display = "";
        b = null
    };
    this.obj.hideCoverBlocker = function () {
        var b = this.coverBlocker();
        b.style.display = "none";
        b = null
    };
    this.obj.updateNestedObjects = function (b) {
        if (this.skin == "dhx_terrace") {
            var a = this.vs[this.av].menu != null || this.vs[this.av].toolbar != null;
            if (this.vs[this.av].grid) {
                var c = a || this._isWindow ? 14 : 0, d = this._isWindow ? 14 : 0, e = this._isWindow ?
                    14 : 0;
                if (b) {
                    if (!this._isWindow)this.vs[this.av].grid.entBox.style.border = "0px solid white", this.vs[this.av].grid.skin_h_correction = -2;
                    this.vs[this.av].grid.dontSetSizes = !0;
                    this.vs[this.av].gridObj.style.position = "absolute"
                }
                this.vs[this.av].gridObj.style.top = c + "px";
                this.vs[this.av].gridObj.style.height = parseInt(this.vs[this.av].dhxcont.mainCont[this.av].style.height) - c - d + "px";
                this.vs[this.av].gridObj.style.left = e + "px";
                this.vs[this.av].gridObj.style.width = parseInt(this.vs[this.av].dhxcont.mainCont[this.av].style.width) -
                    e * 2 + "px";
                this.vs[this.av].grid.setSizes()
            }
            if (this.vs[this.av].tree) {
                c = a || this._isWindow ? 14 : 0;
                d = this._isWindow ? 14 : 0;
                e = this._isWindow ? 14 : 0;
                if (b)this.vs[this.av].treeObj.style.position = "absolute";
                this.vs[this.av].treeObj.style.top = c + "px";
                this.vs[this.av].treeObj.style.height = parseInt(this.vs[this.av].dhxcont.mainCont[this.av].style.height) - c - d + "px";
                this.vs[this.av].treeObj.style.left = e + "px";
                this.vs[this.av].treeObj.style.width = parseInt(this.vs[this.av].dhxcont.mainCont[this.av].style.width) - e * 2 + "px"
            }
            if (this.vs[this.av].form) {
                c =
                    a || this._isWindow ? 14 : 0;
                d = this._isWindow ? 14 : 0;
                e = this._isWindow ? 14 : 0;
                if (b)this.vs[this.av].formObj.style.position = "absolute";
                this.vs[this.av].formObj.style.top = c + "px";
                this.vs[this.av].formObj.style.height = parseInt(this.vs[this.av].dhxcont.mainCont[this.av].style.height) - c - d + "px";
                this.vs[this.av].formObj.style.left = e + "px";
                this.vs[this.av].formObj.style.width = parseInt(this.vs[this.av].dhxcont.mainCont[this.av].style.width) - e * 2 + "px";
                this.vs[this.av].form.setSizes()
            }
            if (this.vs[this.av].layout)b && !this._isWindow && !this._isCell && this.vs[this.av].layout._hideBorders(), c = this._isCell && this._noHeader && !a ? 0 : 14, d = this._isCell && this._noHeader ? 0 : 14, e = this._isCell && this._noHeader ? 0 : 14, this.vs[this.av].layoutObj.style.top = c + "px", this.vs[this.av].layoutObj.style.height = parseInt(this.vs[this.av].dhxcont.mainCont[this.av].style.height) - c - d + "px", this.vs[this.av].layoutObj.style.left = e + "px", this.vs[this.av].layoutObj.style.width = parseInt(this.vs[this.av].dhxcont.mainCont[this.av].style.width) - e * 2 + "px", this.vs[this.av].layout.setSizes();
            if (this.vs[this.av].accordion) {
                if (b)this.vs[this.av].accordion._hideBorders = !0;
                c = this._isCell && this._noHeader && !a ? 0 : 14;
                d = this._isCell && this._noHeader ? 0 : 14;
                e = this._isCell && this._noHeader ? 0 : 14;
                this.vs[this.av].accordionObj.style.top = c + "px";
                this.vs[this.av].accordionObj.style.height = parseInt(this.vs[this.av].dhxcont.mainCont[this.av].style.height) - c - d + "px";
                this.vs[this.av].accordionObj.style.left = e + "px";
                this.vs[this.av].accordionObj.style.width = parseInt(this.vs[this.av].dhxcont.mainCont[this.av].style.width) -
                    e * 2 + "px";
                this.vs[this.av].accordion.setSizes()
            }
            if (this.vs[this.av].tabbar != null)c = !a && this._isCell && this._noHeader ? 0 : 14, d = this._isCell && this._noHeader ? c : 28, e = this._isCell && this._noHeader ? 0 : 14, this.vs[this.av].tabbarObj.style.top = c + "px", this.vs[this.av].tabbarObj.style.height = parseInt(this.vs[this.av].dhxcont.mainCont[this.av].style.height) - d + "px", this.vs[this.av].tabbarObj.style.left = e + "px", this.vs[this.av].tabbarObj.style.width = parseInt(this.vs[this.av].dhxcont.mainCont[this.av].style.width) - e * 2 +
                "px", this.vs[this.av].tabbar.adjustOuterSize();
            if (this.vs[this.av].editor)e = c = 14, this.vs[this.av].editorObj.style.top = c + "px", this.vs[this.av].editorObj.style.height = parseInt(this.vs[this.av].dhxcont.mainCont[this.av].style.height) - c * 2 + "px", this.vs[this.av].editorObj.style.left = e + "px", this.vs[this.av].editorObj.style.width = parseInt(this.vs[this.av].dhxcont.mainCont[this.av].style.width) - e * 2 + "px", _isIE || this.vs[this.av].editor._prepareContent(!0), this.vs[this.av].editor.setSizes();
            this.vs[this.av].sched &&
            this.vs[this.av].sched.setSizes();
            this.vs[this.av].dockedCell && this.vs[this.av].dockedCell.updateNestedObjects()
        } else {
            this.vs[this.av].grid && this.vs[this.av].grid.setSizes();
            this.vs[this.av].sched && this.vs[this.av].sched.setSizes();
            this.vs[this.av].tabbar && this.vs[this.av].tabbar.adjustOuterSize();
            this.vs[this.av].folders && this.vs[this.av].folders.setSizes();
            this.vs[this.av].editor && (_isIE || this.vs[this.av].editor._prepareContent(!0), this.vs[this.av].editor.setSizes());
            if (this.vs[this.av].layout)(this._isAcc ||
            this._isTabbarCell) && this.skin == "dhx_skyblue" ? (this.vs[this.av].layoutObj.style.width = parseInt(this.vs[this.av].dhxcont.mainCont[this.av].style.width) + 2 + "px", this.vs[this.av].layoutObj.style.height = parseInt(this.vs[this.av].dhxcont.mainCont[this.av].style.height) + 2 + "px") : (this.vs[this.av].layoutObj.style.width = this.vs[this.av].dhxcont.mainCont[this.av].style.width, this.vs[this.av].layoutObj.style.height = this.vs[this.av].dhxcont.mainCont[this.av].style.height), this.vs[this.av].layout.setSizes();
            if (this.vs[this.av].accordion !=
                null)this.skin == "dhx_web" ? (this.vs[this.av].accordionObj.style.width = parseInt(this.vs[this.av].dhxcont.mainCont[this.av].style.width) + "px", this.vs[this.av].accordionObj.style.height = parseInt(this.vs[this.av].dhxcont.mainCont[this.av].style.height) + "px") : (this.vs[this.av].accordionObj.style.width = parseInt(this.vs[this.av].dhxcont.mainCont[this.av].style.width) + 2 + "px", this.vs[this.av].accordionObj.style.height = parseInt(this.vs[this.av].dhxcont.mainCont[this.av].style.height) + 2 + "px"), this.vs[this.av].accordion.setSizes();
            this.vs[this.av].dockedCell && this.vs[this.av].dockedCell.updateNestedObjects();
            this.vs[this.av].form && this.vs[this.av].form.setSizes();
            this.vs[this.av].carousel && this.vs[this.av].carousel.setSizes()
        }
    };
    this.obj.attachStatusBar = function () {
        if (!this.vs[this.av].sb) {
            var b = document.createElement("DIV");
            b.className = this._isCell ? "dhxcont_sb_container_layoutcell" : "dhxcont_sb_container";
            b.id = "sbobj_" + this._genStr(12);
            b.innerHTML = "<div class='dhxcont_statusbar'></div>";
            this.cv == this.av ? this.vs[this.av].dhxcont.insertBefore(b,
                this.vs[this.av].dhxcont.childNodes[this.vs[this.av].dhxcont.childNodes.length - 1]) : g.st.appendChild(b);
            b.setText = function (a) {
                this.childNodes[0].innerHTML = a
            };
            b.getText = function () {
                return this.childNodes[0].innerHTML
            };
            b.onselectstart = function (a) {
                a = a || event;
                return a.returnValue = !1
            };
            this.vs[this.av].sb = b;
            this.vs[this.av].sbHeight = this.skin == "dhx_web" ? 41 : this.skin == "dhx_skyblue" ? 23 : b.offsetHeight;
            this.vs[this.av].sbId = b.id;
            this._doOnAttachStatusBar && this._doOnAttachStatusBar("init");
            this.adjust();
            return this.vs[this._viewRestore()].sb
        }
    };
    this.obj.detachStatusBar = function (b) {
        if (this.vs[this.av].sb)this.vs[this.av].sb.setText = null, this.vs[this.av].sb.getText = null, this.vs[this.av].sb.onselectstart = null, this.vs[this.av].sb.parentNode.removeChild(this.vs[this.av].sb), this.vs[this.av].sb = null, this.vs[this.av].sbHeight = null, this.vs[this.av].sbId = null, this._viewRestore(), this._doOnAttachStatusBar && !b && this._doOnAttachStatusBar("unload")
    };
    this.obj.getFrame = function () {
        return this.getView()._frame
    };
    this.obj.getView = function (b) {
        return this.vs[b ||
        this.av]
    };
    this.obj.attachMenu = function (b) {
        if (!this.vs[this.av].menu) {
            var a = document.createElement("DIV");
            a.style.position = "relative";
            a.style.overflow = "hidden";
            a.id = "dhxmenu_" + this._genStr(12);
            this.cv == this.av ? this.vs[this.av].dhxcont.insertBefore(a, this.vs[this.av].dhxcont.childNodes[0]) : g.st.appendChild(a);
            typeof b != "object" ? this.vs[this.av].menu = new dhtmlXMenuObject(a.id, b || this.skin) : (b.parent = a.id, this.vs[this.av].menu = new dhtmlXMenuObject(b));
            this.vs[this.av].menuHeight = this.skin == "dhx_web" ?
                29 : a.offsetHeight;
            this.vs[this.av].menuId = a.id;
            this._doOnAttachMenu && this._doOnAttachMenu("init");
            this.adjust();
            return this.vs[this._viewRestore()].menu
        }
    };
    this.obj.detachMenu = function (b) {
        if (this.vs[this.av].menu) {
            var a = document.getElementById(this.vs[this.av].menuId);
            this.vs[this.av].menu.unload();
            this.vs[this.av].menu = null;
            this.vs[this.av].menuId = null;
            this.vs[this.av].menuHeight = null;
            a && a.parentNode.removeChild(a);
            a = null;
            this._viewRestore();
            this._doOnAttachMenu && !b && this._doOnAttachMenu("unload")
        }
    };
    this.obj.attachToolbar = function (b) {
        if (!this.vs[this.av].toolbar) {
            var a = document.createElement("DIV");
            a.style.position = "relative";
            a.style.overflow = "hidden";
            a.id = "dhxtoolbar_" + this._genStr(12);
            this.cv == this.av ? this.vs[this.av].dhxcont.insertBefore(a, this.vs[this.av].dhxcont.childNodes[this.vs[this.av].menu != null ? 1 : 0]) : g.st.appendChild(a);
            typeof b != "object" ? this.vs[this.av].toolbar = new dhtmlXToolbarObject(a.id, b || this.skin) : (b.parent = a.id, this.vs[this.av].toolbar = new dhtmlXToolbarObject(b));
            this.vs[this.av].toolbarHeight =
                a.offsetHeight;
            this.vs[this.av].toolbarId = a.id;
            this._doOnAttachToolbar && this._doOnAttachToolbar("init");
            this.adjust();
            var c = this;
            this.vs[this.av].toolbar.attachEvent("_onIconSizeChange", function () {
                c.vs[c.av].toolbarHeight = this.cont.offsetHeight;
                c.vs[c.av].toolbarId = this.cont.id;
                c.adjust();
                c._doOnAttachToolbar && c._doOnAttachToolbar("iconSizeChange")
            });
            this.skin != "dhx_terrace" && this.vs[this.av].toolbar.callEvent("_onIconSizeChange", []);
            return this.vs[this._viewRestore()].toolbar
        }
    };
    this.obj.detachToolbar =
        function (b) {
            if (this.vs[this.av].toolbar) {
                var a = document.getElementById(this.vs[this.av].toolbarId);
                this.vs[this.av].toolbar.unload();
                this.vs[this.av].toolbar = null;
                this.vs[this.av].toolbarId = null;
                this.vs[this.av].toolbarHeight = null;
                a && a.parentNode.removeChild(a);
                a = null;
                this._viewRestore();
                this._doOnAttachToolbar && !b && this._doOnAttachToolbar("unload")
            }
        };
    this.obj.attachGrid = function () {
        if (this._isWindow && this.skin == "dhx_skyblue")this.vs[this.av].dhxcont.mainCont[this.av].style.border = "#a4bed4 1px solid",
            this._redraw();
        var b = document.createElement("DIV");
        b.id = "dhxGridObj_" + this._genStr(12);
        b.style.width = "100%";
        b.style.height = "100%";
        b.cmp = "grid";
        document.body.appendChild(b);
        this.attachObject(b.id, !1, !0, !1);
        this.vs[this.av].grid = new dhtmlXGridObject(b.id);
        this.vs[this.av].grid.setSkin(this.skin);
        if (this.skin == "dhx_skyblue" || this.skin == "dhx_black" || this.skin == "dhx_blue")this.vs[this.av].grid.entBox.style.border = "0px solid white", this.vs[this.av].grid._sizeFix = 2;
        this.vs[this.av].gridId = b.id;
        this.vs[this.av].gridObj =
            b;
        this.skin == "dhx_terrace" && (this.adjust(), this.updateNestedObjects(!0));
        return this.vs[this._viewRestore()].grid
    };
    this.obj.attachScheduler = function (b, a, c, d) {
        var d = d || window.scheduler, e = 0;
        c && (h = document.getElementById(c)) && (e = 1);
        if (!e) {
            var f = c || '<div class="dhx_cal_tab" name="day_tab" style="right:204px;"></div><div class="dhx_cal_tab" name="week_tab" style="right:140px;"></div><div class="dhx_cal_tab" name="month_tab" style="right:76px;"></div>', h = document.createElement("DIV");
            h.id = "dhxSchedObj_" +
                this._genStr(12);
            h.innerHTML = '<div id="' + h.id + '" class="dhx_cal_container" style="width:100%; height:100%;"><div class="dhx_cal_navline"><div class="dhx_cal_prev_button">&nbsp;</div><div class="dhx_cal_next_button">&nbsp;</div><div class="dhx_cal_today_button"></div><div class="dhx_cal_date"></div>' + f + '</div><div class="dhx_cal_header"></div><div class="dhx_cal_data"></div></div>';
            document.body.appendChild(h.firstChild)
        }
        this.attachObject(h.id, !1, !0, !1);
        this.vs[this.av].sched = d;
        this.vs[this.av].schedId =
            h.id;
        d.setSizes = d.update_view;
        d.destructor = function () {
        };
        d.init(h.id, b, a);
        return this.vs[this._viewRestore()].sched
    };
    this.obj.attachTree = function (b) {
        if (this._isWindow && this.skin == "dhx_skyblue")this.vs[this.av].dhxcont.mainCont[this.av].style.border = "#a4bed4 1px solid", this._redraw();
        var a = document.createElement("DIV");
        a.id = "dhxTreeObj_" + this._genStr(12);
        a.style.width = "100%";
        a.style.height = "100%";
        a.cmp = "tree";
        document.body.appendChild(a);
        this.attachObject(a.id, !1, !0, !1);
        this.vs[this.av].tree = new dhtmlXTreeObject(a.id,
            "100%", "100%", b || 0);
        this.vs[this.av].tree.setSkin(this.skin);
        this.vs[this.av].tree.allTree.childNodes[0].style.marginTop = "2px";
        this.vs[this.av].tree.allTree.childNodes[0].style.marginBottom = "2px";
        this.vs[this.av].treeId = a.id;
        this.vs[this.av].treeObj = a;
        this.skin == "dhx_terrace" && (this.adjust(), this.updateNestedObjects(!0));
        return this.vs[this._viewRestore()].tree
    };
    this.obj.attachTabbar = function (b) {
        if (this._isWindow && this.skin == "dhx_skyblue")this.vs[this.av].dhxcont.style.border = "none", this.setDimension(this.w,
            this.h);
        var a = document.createElement("DIV");
        a.id = "dhxTabbarObj_" + this._genStr(12);
        a.style.width = "100%";
        a.style.height = "100%";
        a.style.overflow = "hidden";
        a.cmp = "tabbar";
        if (!this._isWindow)a._hideBorders = !0;
        document.body.appendChild(a);
        this.attachObject(a.id, !1, !0, !1);
        if (this._isCell)this.hideHeader(), this._padding = a._hideBorders = !1;
        this.vs[this.av].tabbar = new dhtmlXTabBar(a.id, b || "top", this.skin == "dhx_terrace" ? null : 20);
        if (!this._isWindow && this.skin != "dhx_terrace")this.vs[this.av].tabbar._s.expand = !0;
        this.vs[this.av].tabbar.setSkin(this.skin);
        this.vs[this.av].tabbar.adjustOuterSize();
        this.vs[this.av].tabbarId = a.id;
        this.vs[this.av].tabbarObj = a;
        this.skin == "dhx_terrace" && (this.adjust(), this.updateNestedObjects(!0));
        return this.vs[this._viewRestore()].tabbar
    };
    this.obj.attachFolders = function () {
        if (this._isWindow && this.skin == "dhx_skyblue")this.vs[this.av].dhxcont.mainCont[this.av].style.border = "#a4bed4 1px solid", this._redraw();
        var b = document.createElement("DIV");
        b.id = "dhxFoldersObj_" + this._genStr(12);
        b.style.width = "100%";
        b.style.height = "100%";
        b.style.overflow = "hidden";
        b.cmp = "folders";
        document.body.appendChild(b);
        this.attachObject(b.id, !1, !0, !1);
        this.vs[this.av].folders = new dhtmlxFolders(b.id);
        this.vs[this.av].folders.setSizes();
        this.vs[this.av].foldersId = b.id;
        this.vs[this.av].foldersObj = b;
        return this.vs[this._viewRestore()].folders
    };
    this.obj.attachAccordion = function () {
        if (this._isWindow && this.skin == "dhx_skyblue")this.vs[this.av].dhxcont.mainCont[this.av].style.border = "#a4bed4 1px solid", this._redraw();
        var b = document.createElement("DIV");
        b.id = "dhxAccordionObj_" + this._genStr(12);
        this._padding = !0;
        if (this.skin == "dhx_web")b.style.left = "0px", b.style.top = "0px", b.style.width = parseInt(this.vs[this.av].dhxcont.mainCont[this.av].style.width) + "px", b.style.height = parseInt(this.vs[this.av].dhxcont.mainCont[this.av].style.height) + "px"; else if (this.skin != "dhx_terrace")b.style.left = "-1px", b.style.top = "-1px", b.style.width = parseInt(this.vs[this.av].dhxcont.mainCont[this.av].style.width) + 2 + "px", b.style.height = parseInt(this.vs[this.av].dhxcont.mainCont[this.av].style.height) +
            2 + "px";
        b.style.position = "relative";
        b.cmp = "accordion";
        document.body.appendChild(b);
        this.attachObject(b.id, !1, !0, !1);
        this.vs[this.av].accordion = new dhtmlXAccordion(b.id, this.skin);
        this.vs[this.av].accordion.setSizes();
        this.vs[this.av].accordionId = b.id;
        this.vs[this.av].accordionObj = b;
        this.skin == "dhx_terrace" && (this.adjust(), this.updateNestedObjects(!0));
        return this.vs[this._viewRestore()].accordion
    };
    this.obj.attachLayout = function (b, a) {
        if (this._isCell && this.skin == "dhx_skyblue")this.hideHeader(), this.vs[this.av].dhxcont.style.border =
            "0px solid white", this.adjustContent(this.childNodes[0], 0);
        this._isCell && this.skin == "dhx_web" && this.hideHeader();
        this._padding = !0;
        var c = document.createElement("DIV");
        c.id = "dhxLayoutObj_" + this._genStr(12);
        c.style.overflow = "hidden";
        c.style.position = "absolute";
        c.style.left = "0px";
        c.style.top = "0px";
        c.style.width = parseInt(this.vs[this.av].dhxcont.mainCont[this.av].style.width) + "px";
        c.style.height = parseInt(this.vs[this.av].dhxcont.mainCont[this.av].style.height) + "px";
        if ((this._isTabbarCell || this._isAcc) &&
            this.skin == "dhx_skyblue")c.style.left = "-1px", c.style.top = "-1px", c.style.width = parseInt(this.vs[this.av].dhxcont.mainCont[this.av].style.width) + 2 + "px", c.style.height = parseInt(this.vs[this.av].dhxcont.mainCont[this.av].style.height) + 2 + "px";
        c.dhxContExists = !0;
        c.cmp = "layout";
        document.body.appendChild(c);
        this.attachObject(c.id, !1, !0, !1);
        this.vs[this.av].layout = new dhtmlXLayoutObject(c, b, a || this.skin);
        this._isWindow && this.attachEvent("_onBeforeTryResize", this.vs[this.av].layout._defineWindowMinDimension);
        this.vs[this.av].layoutId = c.id;
        this.vs[this.av].layoutObj = c;
        if (this.skin == "dhx_terrace") {
            if (this._isCell)this.style.backgroundColor = "transparent", this.vs[this.av].dhxcont.style.backgroundColor = "transparent", this.hideHeader();
            this.adjust();
            this.updateNestedObjects(!0)
        }
        return this.vs[this._viewRestore()].layout
    };
    this.obj.attachEditor = function (b) {
        if (this._isWindow && this.skin == "dhx_skyblue")this.vs[this.av].dhxcont.mainCont[this.av].style.border = "#a4bed4 1px solid", this._redraw();
        var a = document.createElement("DIV");
        a.id = "dhxEditorObj_" + this._genStr(12);
        a.style.position = "relative";
        a.style.display = "none";
        a.style.overflow = "hidden";
        a.style.width = "100%";
        a.style.height = "100%";
        a.cmp = "editor";
        document.body.appendChild(a);
        if (this.skin == "dhx_terrace")a._attached = !0;
        this.attachObject(a.id, !1, !0, !1);
        this.vs[this.av].editor = new dhtmlXEditor(a.id, b || this.skin);
        this.vs[this.av].editorId = a.id;
        this.vs[this.av].editorObj = a;
        this.skin == "dhx_terrace" && (this.adjust(), this.updateNestedObjects(!0));
        return this.vs[this._viewRestore()].editor
    };
    this.obj.attachMap = function (b) {
        var a = document.createElement("DIV");
        a.id = "GMapsObj_" + this._genStr(12);
        a.style.position = "relative";
        a.style.display = "none";
        a.style.overflow = "hidden";
        a.style.width = "100%";
        a.style.height = "100%";
        a.cmp = "gmaps";
        document.body.appendChild(a);
        this.attachObject(a.id, !1, !0, !0);
        b || (b = {
            center: new google.maps.LatLng(40.719837, -73.992348),
            zoom: 11,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        });
        this.vs[this.av].gmaps = new google.maps.Map(a, b);
        return this.vs[this.av].gmaps
    };
    this.obj.attachObject =
        function (b, a, c, d) {
            typeof b == "string" && (b = document.getElementById(b));
            if (a) {
                b.style.visibility = "hidden";
                b.style.display = "";
                var e = b.offsetWidth, f = b.offsetHeight
            }
            this._attachContent("obj", b);
            if (a && this._isWindow)b.style.visibility = "", this._adjustToContent(e, f);
            if (this.skin == "dhx_terrace" && (this.vs[this.av].menu != null || this.vs[this.av].toolbar != null))this.adjust(typeof d == "undefined" || d == !0), this.updateNestedObjects(!0);
            c || this._viewRestore()
        };
    this.obj.detachObject = function (b, a) {
        for (var c = null, d = null,
                 e = "tree,grid,layout,tabbar,accordion,folders,form".split(","), f = 0; f < e.length; f++)if (this.vs[this.av][e[f]]) {
            c = this.vs[this.av][e[f]];
            d = this.vs[this.av][e[f] + "Obj"];
            if (b) {
                c.unload && c.unload();
                for (c.destructor && c.destructor(); d.childNodes.length > 0;)d.removeChild(d.childNodes[0]);
                d.parentNode.removeChild(d);
                c = d = null
            } else document.body.appendChild(d), d.style.display = "none";
            this.vs[this.av][e[f]] = null;
            this.vs[this.av][e[f] + "Id"] = null;
            this.vs[this.av][e[f] + "Obj"] = null
        }
        if (c != null && d != null)return [c, d];
        if (b &&
            this.vs[this.av]._frame)this._detachURLEvents(), this.vs[this.av]._frame = null;
        for (var h = this.vs[this.av].dhxcont.mainCont[this.av]; h.childNodes.length > 0;)if (b == !0)h.removeChild(h.childNodes[0]); else {
            var g = h.childNodes[0];
            a != null ? (typeof a != "object" && (a = document.getElementById(a)), a.appendChild(g)) : document.body.appendChild(g);
            g.style.display = "none"
        }
        h = a = null
    };
    this.obj.appendObject = function (b) {
        typeof b == "string" && (b = document.getElementById(b));
        this._attachContent("obj", b, !0)
    };
    this.obj.attachHTMLString =
        function (b) {
            this._attachContent("str", b);
            for (var a = b.match(/<script[^>]*>[^\f]*?<\/script>/g) || [], c = 0; c < a.length; c++) {
                var d = a[c].replace(/<([\/]{0,1})script[^>]*>/g, "");
                d && (window.execScript ? window.execScript(d) : window.eval(d))
            }
        };
    this.obj.attachURL = function (b, a) {
        this._attachContent(a == !0 ? "urlajax" : "url", b, !1);
        if (this.skin == "dhx_terrace" && (this.vs[this.av].menu != null || this.vs[this.av].toolbar != null))this.adjust(!0), this.updateNestedObjects(!0);
        this._viewRestore()
    };
    this.obj.adjust = function (b) {
        if (this.skin ==
            "dhx_skyblue") {
            if (this.vs[this.av].menu) {
                if (this._isWindow || this._isLayout)this.vs[this.av].menu._topLevelOffsetLeft = 0, document.getElementById(this.vs[this.av].menuId).style.height = "26px", this.vs[this.av].menuHeight = document.getElementById(this.vs[this.av].menuId).offsetHeight, this._doOnAttachMenu && this._doOnAttachMenu("show");
                if (this._isCell)document.getElementById(this.vs[this.av].menuId).className += " in_layoutcell", this.vs[this.av].menuHeight = 25;
                if (this._isAcc)document.getElementById(this.vs[this.av].menuId).className +=
                    " in_acccell", this.vs[this.av].menuHeight = 25;
                this._doOnAttachMenu && this._doOnAttachMenu("adjust")
            }
            this.vs[this.av].toolbar && (this._isWindow && (document.getElementById(this.vs[this.av].toolbarId).className += " in_window"), this._isLayout && (document.getElementById(this.vs[this.av].toolbarId).className += " in_layout"), this._isCell && (document.getElementById(this.vs[this.av].toolbarId).className += " in_layoutcell"), this._isAcc && (document.getElementById(this.vs[this.av].toolbarId).className += " in_acccell"),
            this._isTabbarCell && (document.getElementById(this.vs[this.av].toolbarId).className += " in_tabbarcell"))
        }
        this.skin == "dhx_web" && this.vs[this.av].toolbar && (this._isWindow && (document.getElementById(this.vs[this.av].toolbarId).className += " in_window"), this._isLayout && (document.getElementById(this.vs[this.av].toolbarId).className += " in_layout"), this._isCell && (document.getElementById(this.vs[this.av].toolbarId).className += " in_layoutcell"), this._isAcc && (document.getElementById(this.vs[this.av].toolbarId).className +=
            " in_acccell"), this._isTabbarCell && (document.getElementById(this.vs[this.av].toolbarId).className += " in_tabbarcell"));
        if (this.skin == "dhx_terrace") {
            var a = 0;
            if (this._isWindow || this._isCell || this._isAcc || this._isTabbarCell)a = 14;
            this._isCell && this._noHeader && (a = 0);
            var c = 0;
            if (this._isWindow || this._isCell || this._isAcc || this._isTabbarCell)c = 14;
            this._isCell && this._noHeader && (c = 0);
            var d = b == !0 && !this.vs[this.av].toolbar || this._isLayout ? 14 : 0, e = b == !0 || this._isLayout ? 14 : 0, f = !1;
            if (this.vs[this.av].menu)document.getElementById(this.vs[this.av].menuId).style.marginLeft =
                a + "px", document.getElementById(this.vs[this.av].menuId).style.marginRight = a + "px", document.getElementById(this.vs[this.av].menuId).style.marginTop = c + "px", document.getElementById(this.vs[this.av].menuId).style.marginBottom = d + "px", this.vs[this.av].menuHeight = 32 + c + d, this._doOnAttachMenu && this._doOnAttachMenu("show"), f = !0;
            if (this.vs[this.av].toolbar)c == 0 && this.vs[this.av].menu != null & this._isCell && (c = 14), document.getElementById(this.vs[this.av].toolbarId).style.marginLeft = a + "px", document.getElementById(this.vs[this.av].toolbarId).style.marginRight =
                a + "px", document.getElementById(this.vs[this.av].toolbarId).style.marginTop = c + "px", document.getElementById(this.vs[this.av].toolbarId).style.marginBottom = e + "px", this.vs[this.av].toolbarHeight = this.vs[this.av].toolbar.cont.offsetHeight + c + e, this._doOnAttachToolbar && this._doOnAttachToolbar("show"), f = !0
        }
    };
    this.obj._attachContent = function (b, a, c) {
        if (c !== !0) {
            if (this.vs[this.av]._frame)this._detachURLEvents(), this.vs[this.av]._frame = null;
            for (; this.vs[this.av].dhxcont.mainCont[this.av].childNodes.length > 0;)this.vs[this.av].dhxcont.mainCont[this.av].removeChild(this.vs[this.av].dhxcont.mainCont[this.av].childNodes[0])
        }
        if (b ==
            "url") {
            if (this._isWindow && a.cmp == null && this.skin == "dhx_skyblue")this.vs[this.av].dhxcont.mainCont[this.av].style.border = "#a4bed4 1px solid", this._redraw();
            var d = document.createElement("IFRAME");
            d.frameBorder = 0;
            d.border = 0;
            d.style.width = "100%";
            d.style.height = "100%";
            d.setAttribute("src", "javascript:false;");
            this.vs[this.av].dhxcont.mainCont[this.av].appendChild(d);
            d.src = a;
            this.vs[this.av]._frame = d;
            this._attachURLEvents()
        } else if (b == "urlajax") {
            if (this._isWindow && a.cmp == null && this.skin == "dhx_skyblue")this.vs[this.av].dhxcont.mainCont[this.av].style.border =
                "#a4bed4 1px solid", this.vs[this.av].dhxcont.mainCont[this.av].style.backgroundColor = "#FFFFFF", this._redraw();
            var e = this, f = String(this.av).valueOf(), h = function () {
                var a = e.av;
                e.av = f;
                e.attachHTMLString(this.xmlDoc.responseText, this);
                e.av = a;
                e._doOnFrameContentLoaded && e._doOnFrameContentLoaded();
                this.destructor()
            }, g = new dtmlXMLLoaderObject(h, window);
            g.dhxWindowObject = this;
            g.loadXML(a)
        } else if (b == "obj") {
            if (this._isWindow && a.cmp == null && this.skin == "dhx_skyblue")this.vs[this.av].dhxcont.mainCont[this.av].style.border =
                "#a4bed4 1px solid", this.vs[this.av].dhxcont.mainCont[this.av].style.backgroundColor = "#FFFFFF", this._redraw();
            this.vs[this.av].dhxcont._frame = null;
            this.vs[this.av].dhxcont.mainCont[this.av].appendChild(a);
            this.vs[this.av].dhxcont.mainCont[this.av].style.overflow = c === !0 ? "auto" : "hidden";
            a.style.display = ""
        } else if (b == "str") {
            if (this._isWindow && a.cmp == null && this.skin == "dhx_skyblue")this.vs[this.av].dhxcont.mainCont[this.av].style.border = "#a4bed4 1px solid", this.vs[this.av].dhxcont.mainCont[this.av].style.backgroundColor =
                "#FFFFFF", this._redraw();
            this.vs[this.av].dhxcont._frame = null;
            this.vs[this.av].dhxcont.mainCont[this.av].innerHTML = a
        }
    };
    this.obj._attachURLEvents = function () {
        var b = this, a = this.vs[this.av]._frame;
        _isIE ? a.onreadystatechange = function () {
            if (a.readyState == "complete") {
                try {
                    a.contentWindow.document.body.onmousedown = function () {
                        b._doOnFrameMouseDown && b._doOnFrameMouseDown()
                    }
                } catch (c) {
                }
                try {
                    b._doOnFrameContentLoaded && b._doOnFrameContentLoaded()
                } catch (d) {
                }
            }
        } : a.onload = function () {
            try {
                a.contentWindow.onmousedown = function () {
                    b._doOnFrameMouseDown &&
                    b._doOnFrameMouseDown()
                }
            } catch (c) {
            }
            try {
                b._doOnFrameContentLoaded && b._doOnFrameContentLoaded()
            } catch (d) {
            }
        }
    };
    this.obj._detachURLEvents = function () {
        if (_isIE)try {
            this.vs[this.av]._frame.onreadystatechange = null, this.vs[this.av]._frame.contentWindow.document.body.onmousedown = null, this.vs[this.av]._frame.onload = null
        } catch (b) {
        } else try {
            this.vs[this.av]._frame.contentWindow.onmousedown = null, this.vs[this.av]._frame.onload = null
        } catch (a) {
        }
    };
    this.obj.showMenu = function () {
        if (this.vs[this.av].menu && this.vs[this.av].menuId &&
            document.getElementById(this.vs[this.av].menuId).style.display == "none")this.vs[this.av].menuHidden = !1, this._doOnAttachMenu && this._doOnAttachMenu("show"), document.getElementById(this.vs[this.av].menuId).style.display = "", this._viewRestore()
    };
    this.obj.hideMenu = function () {
        if (this.vs[this.av].menu && this.vs[this.av].menuId && document.getElementById(this.vs[this.av].menuId).style.display != "none")document.getElementById(this.vs[this.av].menuId).style.display = "none", this.vs[this.av].menuHidden = !0, this._doOnAttachMenu &&
        this._doOnAttachMenu("hide"), this._viewRestore()
    };
    this.obj.showToolbar = function () {
        if (this.vs[this.av].toolbar && this.vs[this.av].toolbarId && document.getElementById(this.vs[this.av].toolbarId).style.display == "none")this.vs[this.av].toolbarHidden = !1, this._doOnAttachToolbar && this._doOnAttachToolbar("show"), document.getElementById(this.vs[this.av].toolbarId).style.display = "", this._viewRestore()
    };
    this.obj.hideToolbar = function () {
        if (this.vs[this.av].toolbar && this.vs[this.av].toolbarId && document.getElementById(this.vs[this.av].toolbarId).style.display !=
            "none")this.vs[this.av].toolbarHidden = !0, document.getElementById(this.vs[this.av].toolbarId).style.display = "none", this._doOnAttachToolbar && this._doOnAttachToolbar("hide"), this._viewRestore()
    };
    this.obj.showStatusBar = function () {
        if (this.vs[this.av].sb && this.vs[this.av].sbId && document.getElementById(this.vs[this.av].sbId).style.display == "none")this.vs[this.av].sbHidden = !1, this._doOnAttachStatusBar && this._doOnAttachStatusBar("show"), document.getElementById(this.vs[this.av].sbId).style.display = "", this._viewRestore()
    };
    this.obj.hideStatusBar = function () {
        if (this.vs[this.av].sb && this.vs[this.av].sbId && document.getElementById(this.vs[this.av].sbId).style.display != "none")this.vs[this.av].sbHidden = !0, document.getElementById(this.vs[this.av].sbId).style.display = "none", this._doOnAttachStatusBar && this._doOnAttachStatusBar("hide"), this._viewRestore()
    };
    this.obj._dhxContDestruct = function () {
        var b = this.av, a;
        for (a in this.vs)this.av = a, this.detachMenu(!0), this.detachToolbar(!0), this.detachStatusBar(!0), this.detachObject(!0), this.vs[a].dhxcont.mainCont[a] =
            null;
        for (a in this.vs)this.vs[a].dhxcont.mainCont = null, this.vs[a].dhxcont.innerHTML = "", this.vs[a].dhxcont = null, this.vs[a] = null;
        this.setActive = this.getView = this.getFrame = this._getSt = this._dhxContDestruct = this._genStr = this._init = this._setPadding = this._viewRestore = this._detachURLEvents = this._attachURLEvents = this._attachContent = this.updateNestedObjects = this.hideCoverBlocker = this.showCoverBlocker = this.coverBlocker = this.adjustContent = this.moveContentTo = this.setMinContentSize = this.adjust = this.show = this.view =
            this.attachMap = this.attachURL = this.attachHTMLString = this.appendObject = this.detachObject = this.attachObject = this.attachEditor = this.attachLayout = this.attachAccordion = this.attachFolders = this.attachTabbar = this.attachTree = this.attachScheduler = this.attachGrid = this.hideStatusBar = this.hideToolbar = this.hideMenu = this.showStatusBar = this.showToolbar = this.showMenu = this.detachStatusBar = this.detachToolbar = this.detachMenu = this.attachStatusBar = this.attachToolbar = this.attachMenu = this.vs = null;
        g.st.innerHTML = "";
        g.st.parentNode.removeChild(g.st);
        g.st = null;
        g.setContent = null;
        g.dhxcont = null;
        g = g.obj = null;
        if (dhtmlx.detaches)for (a in dhtmlx.detaches)dhtmlx.detaches[a](this)
    };
    if (dhtmlx.attaches)for (var j in dhtmlx.attaches)this.obj[j] = dhtmlx.attaches[j];
    return this
};

//v.3.6 build 130417

/*
Copyright DHTMLX LTD. http://www.dhtmlx.com
To use this component please contact sales@dhtmlx.com to obtain license
*/